With the rise of the computer age and the ubiquity of the digital mass storage system, more and more of the most valuable data in our everyday lives have been entrusted to relatively fragile magnetic media. Everything from our credit card transactions and medical records to our music collections and photographs are being stored on disks. While it may not be as easy to assign a monetary cost to a one-of-a-kind photograph of a child as it is to a bank deposit, it is assured that a parent will keenly feel its loss.
The increased density of information stored in digital formats increases the risks of loss. Whether the data is stored in an enterprise or in a home, minor accidents like a power surge, the activation of a sprinkler system due to a small fire, or a moment's theft can result in a tremendous loss. One solution to this problem is data backup. Data backup involves transferring an amount of data, usually accumulated over a day or a week, to an offline magnetic storage medium and then moving the storage medium offsite where it is stored. This practice of backing up data to more durable, offline media mitigates some of the risk of loss, but requires a rigorous adherence to a schedule, and does not prevent the loss or damage to data stored between backup events.
Backup alone also does not suffice to protect data against common problems. Minor accidents have a tendency to become major as small fires spread, rainstorms become floods, and power surges become power outages. Quickly recovering access and restoring availability of data in the light of larger incidents require a degree of geographic separation between copies of data. While physically moving a backup off-site serves to mitigate some of the risk of data loss, restoring access to such remotely stored data is a tedious, error-prone process and frequently leads to a significant down time for the business operations.
A better approach to data recovery is the practice of automatically updating a remote replica of a computer storage system. This practice is called remote replication (often just replication). Backup is different from replication, since it saves a copy of data unchanged for a long period of time, whereas replication involves frequent data updates and quick recovery. Enterprises commonly use remote replication as a central part of their disaster recovery or business continuity planning.
Remote replication may be synchronous or asynchronous. A synchronous remote replication system maintains multiple identical copies of a data storage component in multiple locations, with the requirement that a host application does not receive acknowledgment of a successful change until the same change has been applied to all replicas. This requirement ensures that the data are always the same at all locations, and a failure at one site will not result in any lost data. However, this level of reliability comes at a high cost. The performance penalties of transmitting the data are paid at every update and the network hardware required is often prohibitively expensive. Furthermore, the costs increase dramatically as the distance between the sites increases.
Asynchronous remote replication systems relax the above mentioned requirement, allowing the remote updates to occur at some point after the host application has received the acknowledgments. There are a wide variety of approaches that are used in asynchronous replication, but they typically involve the local system maintaining some sort of log of updates, which is transmitted and applied to the remote system. When and how this log is transmitted has significant implications for the reliability characteristics of the replication system, as the amount of data that is stored in the log is also the amount of data that will be lost if a disaster occurs at the local site.
Remote replication is a tremendously powerful tool for business continuity. It also has the potential to be just as powerful a tool for other applications, in the home and in the business. However, the cost and complexity of the current solutions have prevented widespread adoption. Synchronous remote replication has too high a cost, both in network pricing and performance penalties, while asynchronous remote replication doesn't always fare much better.
Accordingly, there is a need for a remote replication solution that is inexpensive, easy to use and scalable without compromising performance.